#ifndef LOGIC_UNDO_H
#define LOGIC_UNDO_H

#include <iostream>
#include <string>
#include <vector>

#include "Parser.h"
#include "Data.h"
#include "Task.h"
#include "Writer.h"

#include <boost\date_time.hpp>

using namespace std;
using namespace boost::posix_time;
using namespace boost::gregorian;

class LogicUndo {
public:

	/*string undo(Parser::PARSED_COMMAND parsedCommand, 
					vector<Task>& tasksVector,
					Writer* _writer, Writer* states[]);

	void setInitUndoState(int initUndoState);
	void setupWriters(Writer* states[]);*/

private:
	/*int _undoState;

	void updateState(Writer* _writer, Writer* states[]);

	bool updateUndoState();

	int getUndoState();

	void updateMainWriter(int undoState, Writer* _writer, Writer* states[]);

	static const string UNDO_SUCCESS_MESSAGE;

	static const string UNDO_ERROR_MESSAGE;

	static const int INIT_UNDO_STATE;
	static const int MAX_UNDO_STATES;

	static const string SUB_WRITER_FILE_NAME;
	static const string FILE_NAME_EXTENSION;*/
};
#endif